const joi = require('joi')

// 定义手机号码验证规则
const phone = joi
  .string()
  .pattern(/^1[3-9]\d{9}$/)
  .required()

// 定义验证码验证规则
const code = joi.string().pattern(/\d{6}/).required()
// 定义用户名验证规则
const username = joi.string().min(1).max(64).required()
// 定义用户密码验证规则,6-16位只能含有数字和字母，必填
const password = joi.string().min(6).max(16).alphanum().required()

// 导出表单验证对象
exports.phoneValidator = {
  // 该对象中只能包含body、query、params三个属性参数
  body: {
    phone
  }
}

// 导出用户注册验证对象
exports.bus_user_register = {
  body: {
    phone,
    code,
    name: username,
    password
  }
}

// 导出商家用户找回密码验证对象
exports.bus_user_forget_schema = {
  body: {
    phone,
    code,
    password,
    newPassword: joi.valid(joi.ref('password')).concat(password)
    // 使用joi.valid(joi.ref('oldPwd')).concat(password)验证规则对新密码进行验证
    //解读：joi.ref()表示新密码和旧密码的值必须保持一致
    // joi.valid(joi.ref('oldPwd'))：表示新密码的值必须和旧密码相同，valid具有枚举功能，这里只能选择旧密码
    // concat(password)用于合并两条验证规则，满足第一条验证规则的同时必须满足第二条验证规则
  }
}
